Ethernet is a networking protocol defined by the Institute of Electrical and Electronics Engineers (IEEE) encompassing standard 802.3, which specifies the physical layer, and 802.1, which specifies the network layer. Ethernet was invented to allow for Local Area Networks (LANs), and allowed “plug and play” networking with little configuration required. Over time, Ethernet was extended to provide additional functionalities and support alternative network topologies. As used herein, the term “Ethernet network” refers to a network which implements one or more of the 802.1 family of protocols including, for example, 802.1, 802.1Q, 802.1ad, 802.1ah, 802.1Qay, 802.1Qbp, or 802.1aq.
IEEE 802.1aq has been developed to support advanced virtualization, enable multipath routing, and simplify the creation and management of carrier, enterprise, and cloud networks. In IEEE 802.1 aq networks, bridges utilize a link state protocol to control forwarding of Ethernet frames by the network by advertising both the topology of the network and logical network membership. Two examples of link state routing protocols include Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS), the latter used in 802.1aq networks.
In link state routing networks, the bridges forming the network exchange link state advertisements (LSAs) to enable each node to have a synchronized view of the network topology. Since each bridge in the network has a synchronized view of the topology of the network and complete awareness of the required unicast and multicast connectivity, each bridge can compute one or more shortest paths between any pair of bridges in the network. With this information, each bridge individually populates a forwarding information base (FIB) accordingly.
IEEE 802.1 aq distributes load on the basis of edge-based spreading onto equal cost trees (ECTs) with a single full mesh of the network being deemed an ECT set. Each ECT set is identified in the data plane by being associated 1:1 with a backbone VLAN identifier (B-VID).
Numerous networking applications have an increased dependency upon multipath network designs where multiple equal cost paths will exist between any two points in the network. In most computer networks, a need to accommodate one or more failures in the network is essential to ensure continued availability of the network. In “traditional” 802.1aq networks, a failure of a link or bridge will be observed by one or more surrounding bridges and advertised throughout the network. Each bridge in the network will recalculate a new path for traffic affected by the failure, and forwarding will automatically continue using the new path. However, when there is a failure, the traffic is shifted to a failover path as a block. In networks with sparse connectivity, these consequences are easily understood due to the highly constrained number of alternative paths. In richly connected multipath networks, however, the load between two given points impacted by a failure is shifted to only one of several possible paths instead of being diffused across the surviving set of paths. This may decrease the stability of the network, as the failover path now processes a significant increase in traffic, which can degrade the performance of traffic already on that path, the traffic shifted to that path, and any other traffic utilizing a link or bridge in the affected path. Further, this block shift of traffic to a failover path could so overwhelm links and bridges in the failover path as to effectively make those elements fail. In this manner, it is possible for a cascading network failure due to repeated shifting of blocks of traffic and resulting failover failures. Thus, it would be desirable to have a mechanism that diffuses network load in failure scenarios without rerouting existing unaffected paths, and upon correction of the failure, restores the displaced load back to the original routing.